//
//  HomeViewController.swift
//  sinaWeibo
//
//  Created by LSY on 15/12/12.
//  Copyright © 2015年 lsy. All rights reserved.
//

import UIKit
import AFNetworking
import SVProgressHUD

private let HomeCellId = "HomeCellId"
class HomeViewController: BaseTableViewController {
    private var status = [Status]()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if !userLongin {
        
            visitorLoginView?.setupInfo("登录后，别人评论你的微博，发给你的消息，都会在这里收到通知", imageName: nil)
            return
        }
        
        prepareTableView()
        loadData()
        
    }
    
//    注册cell
    func prepareTableView(){
    
//        将注册改成StatusCell
        tableView.registerClass(StatusCell.self, forCellReuseIdentifier: HomeCellId)
        
//       设置cell的预估行高
        tableView.estimatedRowHeight = 300
//        设置cell自动精算行高，但必须给contentView设置约束
         tableView.rowHeight  = UITableViewAutomaticDimension
//        设置tableView的分割线
        tableView.separatorStyle = .None
        
    }
    private func loadData(){
        
        //        初始化manager
        let AFN = AFHTTPSessionManager()
        
        let urlString = "https://api.weibo.com/2/statuses/home_timeline.json"
         
        guard let token = AccountViewModel().access_token else{
            
            SVProgressHUD.showInfoWithStatus("请重新加载")
            return
        }
        
        let parameters = ["access_token":token]
        
        //        网络请求
        AFN.GET(urlString, parameters: parameters, progress: { (p) -> Void in
            print(p)
            }, success: { (task, result) -> Void in
    //          将返回的数据反序列化
                
//                判断result是否能转换成字典
                guard let dict = result as? [String:AnyObject] else{
                SVProgressHUD.showInfoWithStatus("网络出错，请稍后尝试")
                    return
                }
                       //  初始化一个模型数组
                    var list = [Status]()

                    if let array = dict["statuses"] as?[[String:AnyObject]]{
                        
//                        print(array)
                        //  遍历array
                        for item in array{
                        //  字典转模型
                            let s = Status(dict: item)
                        //  给list 的数组添天模型元素
                            list.append(s)
                        }
                        
                        self.status = list
                        
//                        刷新列表
                        self.tableView.reloadData()
                    }
            }) { (_, error) -> Void in
                
                print(error)
        }
    }
}

extension HomeViewController{

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return status.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//        将cell 强转成StatusCell时注意更改上边的注册
        let cell = tableView.dequeueReusableCellWithIdentifier(HomeCellId, forIndexPath: indexPath) as!StatusCell

//        cell.textLabel?.text = status[indexPath.row].user?.name
        
//        
        cell.status = status[indexPath.row]
        
        print(status[indexPath.row].imageURLs!.count)
        return cell
    }
}



